Computer systems are increasingly important components in providing images for modeling, predicting, and experimenting with events in many situations. Examples of such situations include flight simulators for training exercises, computer aided drafting and design (CAD) applications for engineers and architects, animated activities in movies and video games, and diagnostic medical devices for physicians. Improvements in display systems, including the development of high resolution display screens, allows greater precision and clarity in displaying geometric objects.
In general, display systems comprise three components: a frame buffer, a monitor, and a display controller. The frame buffer is a digital memory for storing the image to be displayed as a series of binary values. The monitor includes a screen having an array of picture elements, i.e., pixels. Each pixel represents a dot on the screen and can be programmed to a particular color or intensity with thousands of pixels programmed to represent a displayed image. The frame buffer stores these pixel values. The display controller typically is the interface for passing the contents of the frame buffer to the monitor by converting the data from the frame buffer to a video signal for display by the monitor.
Typically, a 3D graphics rendering device employing a frame buffer also stores additional information per pixel (e.g., alpha values representing a blending function, Z (depth) values representing a pixel's distance from the viewer, etc.) not required by the monitor/display. Rendering of an image, including determinations of Z values, is often done sequentially, one pixel at a time through a rasterization pipeline. While improvements in processor speeds tends to improve rendering times, limitations of sequential processing still restrict fast rendering. Attempts to use multiple processors to perform rendering in parallel fashion also tend to improve rendering times, however incorporation of multiple processors increases system size and costs.
What is needed is an efficient system to improve effective throughput of pixel rendering in graphics processing.